package main

import (
	//"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/canvas"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/widget"
	svg "github.com/ajstarks/svgo"
	"os"
)

func main() {
	myApp := app.New()
	myWindow := myApp.NewWindow("Dynamic SVG Example")

	// 初始 SVG 文件
	svgFile := "circle.svg"
	createSVG(svgFile, "red")

	// 加载 SVG 图像
	img := canvas.NewImageFromFile(svgFile)
	img.FillMode = canvas.ImageFillOriginal

	// 更新 SVG 图像的函数
	updateSVG := func(color string) {
		createSVG(svgFile, color)
		img.File = svgFile
		img.Refresh()
	}

	// 创建按钮来动态改变颜色
	button := widget.NewButton("Change Color", func() {
		updateSVG("blue") // 改变颜色为蓝色
	})

	// 设置窗口内容
	myWindow.SetContent(container.NewVBox(img, button))

	// 显示窗口
	myWindow.ShowAndRun()
}

// createSVG 创建 SVG 文件
func createSVG(filePath, color string) {
	f, err := os.Create(filePath)
	if err != nil {
		panic(err)
	}
	defer f.Close()

	canvas1 := svg.New(f)
	canvas1.Start(100, 100)
	canvas1.Circle(50, 50, 40, "fill:"+color+";stroke:black;stroke-width:2")
	canvas1.End()
}
